import {orderPreview, addOrder} from '../../service/order'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    address: null,
    carts: [],
    allPrice: 0,
    showPay: false,
    qr_code_url: '',
    order_id: null,
    timer:null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  onShow () {
    // 检查是否有缓存的选择的地址 id, 有的话, 就是用选择的地址
    const addressId = wx.getStorageSync('select_address_id')

    // 1. 请求订单预览数据, 在onShow请求, 可以保证, 添加完地址, 回到这个页面, 地址能及时刷新
    orderPreview().then(res => {
      // 处理地址
      let address = null
      if (addressId) { // 如果缓存中有地址, 那么匹配缓存中设置的
        // 从现有的地址列表中, 匹配符合id的地址
        address = res.address.filter(item => {
          return item.id == addressId
        }).pop()
      } else { // 是用默认地址
        // 从现有的地址列表中, 匹配默认地址
        address = res.address.filter(item => item.is_default == 1).pop()
      }

      this.setData({
        carts: res.carts,
        address, // 筛选出来默认的地址
        allPrice: res.carts.reduce((pre, current) => {
          return pre + current.num * current.goods.price * 100
        }, 0)
      })
    })
  },

  /**
   * 提交订单并支付
   */
  commitOrder() {
    // 准备提交的参数
    const data = {
      address_id: this.data.address.id
    }

    // 请求API, 提交订单
    addOrder(data).then(order => {
      // 存储订单id
      this.setData({
        order_id: order.id
      })

      //获取子组件对象
      const payDialog = this.selectComponent('#pay-dialog')
      //调用子组件方法，弹出支付二维码
      payDialog.getPayQrcode(order.id)
    })

  },

})